]> dgit.raspbian.org Git - gnome-shell.git/commit
shell-global: try to resync the pointer state after grabs
authorDan Winship <danw@gnome.org>
Wed, 19 Jan 2011 15:29:50 +0000 (10:29 -0500)
committerDan Winship <danw@gnome.org>
Mon, 21 Mar 2011 18:56:53 +0000 (14:56 -0400)
commit2782011ce8f79e4f4acbd8a4f4b64817bbca177b
tree44625e957a990bb6858e9a4e7d366d52b7656049
parent7f17fcfafc21d3ac483e99213276aec38019fac7
shell-global: try to resync the pointer state after grabs

If the pointer moves on or off the stage while another process has a
grab, we will lose track of it. One example of this is that if you use
a popup menu from a message tray trayicon, the tray will stay up after
the menu goes away, because the shell never saw the pointer leave it.

Add a new method shell_global_sync_pointer() that causes clutter to
recheck what actor is under the pointer and generate leave/enter
events if appropriate.

Of course, we can't actually tell for sure when another process has a
grab, so we need a heuristic of when to call this. Currently we call
it from Chrome._windowsRestacked(), which is not really the right
thing at all, but does fix the menu-from-trayicon case...

https://bugzilla.gnome.org/show_bug.cgi?id=630842
js/ui/chrome.js
src/shell-global.c
src/shell-global.h